function ajax(options){
    return new Promise(resolve=>{
        let {url="",method="get",async=true,dataType="text",data={},contentType=true,success=function(){}} = options ;
        // 申明一个变量解析ajax的配置项
        // url为ajax请求地址默认为空
        // method为ajax请求方式，get和post方式，默认为get
        // async为ajax请求的同步与异步，true为异步操作，false为同步操作，默认为true
        // dataType为请求ajax时发送的数据类型，接收和发送ajax数据类型保持一致
        // data为请求ajax的发送的数据集
        // contentType为请求的内容内是否存在文件的传输  默认 true ，没有文件传输 ；       false  存在文件传输
        // success方法为请求ajax成功时，执行的方法，可以将请求成功的数据当作实参传回我们需要用到ajax请求的地方执行
        let xhr ;                      // 申明一个变量
        if(window.XMLHttpRequest){          //当存在  XMLHttpRequest  方法时  创建ajax请求
            xhr = new XMLHttpRequest();
        } else {                            //不兼容   XMLHttpRequest   方法时      
            xhr = new ActiveXObject();      //创建ie模式下的ajax请求
        }
        if ( method.toLowerCase() == "get" ){       //如果配置项中的传输方式为get
            url = url + "?" + getSearch(data);      //那么就给文件路径  url  拼接search
        }
        
        xhr.open(method,url,async);                 //打开ajax

        if( method.toLowerCase() == "post" && contentType ){       //如果传输方式为post
            xhr.setRequestHeader("content-type","application/x-www-form-urlencoded");  //设置post传输的头部
        }           
                                    
        if( method.toLowerCase() == "post" ){       //如果是post传输方式为post传输
            if( contentType ){              //如果  contentType  为true  表示没有传文件
                xhr.send(getSearch(data));              //直接发送ajax时并传递数据
            } else {
                xhr.send(data);         //如果  contentType  为   false 表示有传文件，直接发送数据
            }
        } else {
            xhr.send();                             //如果不是post传输方式，只需要传输数据集即可
        }

        xhr.onload = function (){               
            // dataType数据集的类型，保证发送数据集合返还数据集保持一致性
            if( dataType.toLowerCase() == "json" ){     //当传进来的数据集的类型是json格式时
                // console.log(xhr.responseText);
                success(JSON.parse(xhr.responseText));  //传递出去的数据集也是json格式
                resolve(JSON.parse(xhr.responseText));
            } else {
                success(xhr.responseText);              //否者默认格式
                resolve(xhr.responseText);
            }
        }
    });
}
// 将数据集进行拼接操作
function getSearch(obj){
    str = '' ;
    for( let key in obj ){
        str = str+key+"="+obj[key]+"&";
    }
    str = str.substr(0,str.length-1);
    return str ; 
}